home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer 2.0 / Internet Surfer 2.0 (Wayzata Technology) (1996).iso / pc / textfile / faqs / lin_faq / part3 < prev    next >
Encoding:
Internet Message Format  |  1992-12-26  |  42.3 KB

  1. Xref: bloom-picayune.mit.edu comp.os.linux:18316 news.answers:4212
  2. Path: bloom-picayune.mit.edu!enterpoop.mit.edu!usc!zaphod.mps.ohio-state.edu!cs.utexas.edu!uunet!mcsun!julienas!corton!geocub!labri.greco-prog.fr!corsini
  3. From: corsini@labri.greco-prog.fr
  4. Newsgroups: comp.os.linux,news.answers
  5. Subject: Linux Frequently Asked Questions 3/4 [monthly posted]
  6. Summary: Linux, a small and free unix for 386-AT computers.
  7. Message-ID: <PART3_722647309@geocub.greco-prog.fr>
  8. Date: 24 Nov 92 23:22:11 GMT
  9. Expires: Sat, 19 Dec 1992 23:00:00 GMT
  10. References: <PART2_722647309@geocub.greco-prog.fr>
  11. Sender: corsini@greco-prog.fr (Marc-Michel CORSINI)
  12. Reply-To: linux@numero6.greco-prog.fr
  13. Followup-To: poster
  14. Organization: Greco Prog. CNRS & LaBRI, Bordeaux France
  15. Lines: 1104
  16. Approved: news-answers-request@MIT.Edu
  17. Supersedes: <PART3_722567366@geocub.greco-prog.fr>
  18.  
  19. Archive-name: linux-faq/part3
  20. Last-Modified: 92/11/20
  21. Version: 1.11
  22.  
  23. *********************************************************
  24. *                            *
  25. *   Answers to Frequently asked questions about Linux   *
  26. *                            *
  27. *********************************************************
  28.  
  29. This post contains Part 3 of the Linux FAQ (4 parts).
  30. It must be read *after* the 2 first parts. 
  31.  
  32. ===================================8<====>8============================
  33. CONTENTS (of this part)
  34.  
  35.     VIII.    FEATURES            (part3)
  36.     IX.    GCC MISC INFORMATION        (part3)
  37.     X.    SCSI SPECIAL            (part3)
  38.  
  39. ===================================8<====>8============================
  40.  
  41.  
  42.  
  43. VIII. FEATURES 
  44. ==============
  45.  
  46. QUESTION: I've read that linux has virtual consoles, what must I do to
  47. get them?
  48.  
  49. ANSWER: Yes there are, you can access them with the left <alt>-key
  50. together with <Fn>-key. With the Linux Images distribution, 4 consoles
  51. are available, getty runs on them.  
  52. Notice that they are NOT accessible when running X (contrary to some
  53. commercial unices).
  54.  
  55. QUESTION: When Linux boots, I get the following message "8 virtual
  56. consoles"; how can I acess to the 5-8 vc's ?
  57.  
  58. ANSWER: If you want the getty to run on the 5-8, you should add the
  59. corresponding entries in /etc/inittab. You can also just run sh on
  60. them by using the doshell soft.
  61. And then in either case, the ALT-F[5-8] will access the corresponding
  62. vc.  
  63.  
  64. QUESTION: What kind of shell is /bin/sh ?
  65.  
  66. ANSWER: It's the Bourne Again Shell, bash-1.12.3 and 
  67. compilation was straightforward, just "make" 
  68. that's all or nearly. 
  69. BTW There does exist different shells for Linux, these are:
  70. bash, rc, zsh, tcsh and pdksh (a korn shell).
  71.  
  72.  
  73. QUESTION: Does there exist a man page for **** ?
  74.  
  75. ANSWER: Download man.tar.Z from your favorite linux ftp site, there is
  76. most of the fileutils man page -- either **** or g****, example there
  77. is nothing on ld, but there is for gld :) --, check the whatis
  78. database provided. The files in the cat1 dir are pre-formatted man
  79. pages that the man program can use. Quite recently the man pages for
  80. section 2 have been written (thanks Drew) and can be found, at least
  81. at tsx-11 in /pub/linux/docs/man/man2.tar.Z 
  82.  
  83. Also manpages are in the SLS on the b? disks.
  84.  
  85. BTW there is nroff and groff for Linux. Cawf 2.0 works just
  86. fine for simple man pages, and a partial ms support too. 
  87.  
  88.  
  89. Moreover Michael Johnson is the coordinator for man pages under Linux,
  90. he is looking for volunteers, so contact the DOC Channel.
  91.  
  92. QUESTION: Is there a simple man package (groff is too big):
  93.  
  94. ANSWER: "Cawf -man" also "fm -m" (Al Clark) tsx-11 in
  95.      /pub/linux/binaries/usr.bin/fm.tar.Z 
  96.  
  97.  
  98. QUESTION: What are the editors available in linux?
  99.  
  100. ANSWER: Right now there are uemacs-3.11, elvis-1.4 (1.5). 
  101. Gnu Emacs is there, read the section devoted to it in the 4th part of
  102. this FAQ. Also the port of mg (micro gnu) has been done and can be
  103. found at least at athos.rutgers.edu (128.6.4.4) 
  104. in pub/linux, mg is the binary and mg.tar.Z is the sources file. You
  105. can also find a PD ed, and elvis has an ex mode. Finnally there are
  106. joe, vile-3.11, elle (Elle Looks Like Emacs), Xedit and aXe.
  107.  
  108. QUESTION: Does there exist a printer package for Linux?
  109.  
  110. ANSWER: (R. Miller) Yes.  The "plp" package is currently available
  111. under the directory [/pub/linux]/BETA/plp on tsx-11 and its mirrors.
  112. You may also print things manually like so:  cat filename > /dev/lp1 
  113. (Note that though "/dev/lp0" exists, most people find that their
  114. printer is on /dev/lp1.  Use whatever the kernel says that it detects
  115. in the boot-up messages.) 
  116.  
  117.  
  118. QUESTION: How do I make swapping work?
  119.  
  120. ANSWER: Quite simply, you need the swapon and the mkswap binaries.
  121. Then you can choose between a swap partition or a swap file.
  122. The mkswap is used to write the "swap signature", whilst the swapon
  123. binary is to activate the swapping. 
  124.  
  125. First of all you need a partition :), I assume it's the second of your
  126. first disk namely /dev/hda2, and it's 10MB big
  127. A) swap partition:
  128. you have to indicate it's a swap area, this is done via mkswap
  129. (instead of mkfs) which needs the name of the partition and the size
  130. in blocks (a block is 1Ko big); the optional -c flag is for bad block
  131. checking. So for our example you should perform:
  132. mkswap [-c] /dev/hda2 10000
  133. Then you need to indicate that you want linux to use the swap area,
  134. this is done via swapon. In general it is set in the /etc/rc file,
  135. just put the following entry:
  136. /bin/swapon /dev/hda2
  137. It can also be achieved via the /etc/fstab file
  138. B) swap file:
  139. The process is quite close; you need a partition, and a swap file.
  140. Assume that I prefer a swap area of 4MB (I want to keep some place in
  141. /dev/hda2). I need first to "dd" the file.
  142. dd if=/dev/hda2 of=/swap_file bs=1024 count=4096
  143. bs stands for block size, and count is the number of blocks
  144. then I have to put the "swap signature" on that file:
  145. mkswap /swap_file 4096
  146. At this point, you should 'sync', just to be sure the signature is
  147. effective. And finally add an entry in the rc file:
  148. /bin/swapon /swap_file
  149.  
  150.  
  151. QUESTION: When I boot I get one of the following messages:
  152. "Unable to find swap signature" or "Bad swap-space bitmap"
  153.  
  154. ANSWER: You probably forgot to make your swap-device, use the mkswap
  155. command. 
  156.  
  157.  
  158. QUESTION: How do I know if it is swapping?
  159.  
  160. ANSWER: You will notice it :)) First of all, Linux tells you at boot
  161. time, "Adding swap: XXX pages of swap space", and if you start running
  162. out of memory, you will notice that the disk will work overtime, and
  163. things slow down. Generally a 2Meg RAM will make the system swap
  164. constantly while running gcc, 4 Meg will swap occasionnaly when
  165. optimizing big files (and having other things active, such as make).
  166. Also, the command 'free' (from the ps package) reports total enabled
  167. swap space and current swap use.
  168.  
  169.  
  170. QUESTION: How is it possible to remove a swap file?
  171.  
  172. ANSWER: Simply perform a rm on that file, and remove the swapon of
  173. your /etc/rc file.
  174.  
  175.  
  176. QUESTION: How is it possible to remove a swap device?
  177.  
  178. ANSWER: mkfs the device, and remove the swapon of your /etc/rc file.
  179.  
  180. QUESTION: How much swap space do I need ?
  181.  
  182. ANSWER: Linux does not perform real swapping, it's rather paging (see
  183. below for a more complete explanation). The swap area is *added* to
  184. the memory and can be viewed as virtual memory, so choose the size you
  185. need, example:
  186.  
  187.         8MB RAM + 6MB swap => 14MB virtual memory
  188.  
  189. QUESTION: Could someone explain the swap process on Linux?, is it
  190. swapping or paging ?
  191.  
  192. ANSWER: (Linus) Linux uses swap as /additional/ memory, one page of
  193. the swap-space is used for the good-page bitmap and the swapspace
  194. signature. 
  195. In fact Linux does only paging, no swaping in the meaning "write out
  196. one whole process to disk".
  197. The reason it's called swapping is that Linux used paging for memory
  198. management on a low level since the very beginning, but didn't page to
  199. disk at all until 0.12. 
  200.  
  201. QUESTION: Is demand paging different from paging and How ?
  202.  
  203. ANSWER: (Linus) Demand-paging is really "demand loading of
  204. executables" and is totally independent of the page-swapping
  205. algorithms, although they have similarities. When Linux strts up a
  206. process, no actual code space is loaded: I let the page exceptions
  207. load in the executable as needed. Thus Linux demand-loads the code and
  208. initialized data it needs.
  209. Demand-loading has very good points: (a) it simplifies the exec system
  210. call; (b) it means page sharing between that have excuted the same
  211. file is easy to implement; (c) it cuts down on the amount of memory
  212. required. When Linux runs out of real memory, it starts to lock for
  213. pages it can swap out, but if it notices that the page is clean, it
  214. just forgets about it, and demand-loads it when it's needed again.
  215. Thta means that swap-file isn't needed as much, especially when
  216. running big binaries such as gcc, where the code-pages can be
  217. demand-loaded as you wish.
  218.  
  219. Point (c) means that even without any swap space, you can usually run
  220. slightly larger programs that your memory setup would actually permit.
  221. I've noticed this while running X and doing a kernel compilation +
  222. something else wshen I've forgotten to turn on swapping: free reports
  223. 0 page available but things still work, although performance is
  224. slightly down... 
  225.  
  226. QUESTION: Is there any way to tell how much swap space you are using
  227. or have left? 
  228.  
  229. ANSWER: The free program provided with the ps package handles this.
  230.  
  231.  
  232. QUESTION: I have a 2Megs box, but "free" reports only 1Meg why?
  233.  
  234. ANSWER: (Linus:) "free" doesn't concern with the memory the kernel has
  235. allocated for itself. In other words what you see is the *user* memory
  236. available. The kernel has taken the low 1Meg for it's use (~250Ko for
  237. it and the rest for buffer cache and kernel data structures); for big
  238. memory machine it could be even 2Megs.
  239.  
  240. QUESTION: What tape drives work with Linux ?
  241.  
  242. ANSWER: (24 sept. P. Riipinen)
  243. - There is a working QIC-02 device driver for Linux, supporting (at
  244.   least) Everex/Wangtek cards.
  245. - There are additional patches for the QIC-02 to support Archive
  246.   SC402/499R. You can find them in /pub/linux/alpha/qic-02 at tsx-11
  247.   There are some bugs in the driver but you can backup.
  248. - Newer drivers are all SCSI, so check the SCSI section in this FAQ.
  249.  
  250. QUESTION: Is there only the %$#@ keyboard ?
  251.  
  252. ANSWER: There are Dannish, Finnish, French, German, Uk, US and DVORAK 
  253. keyboards. Set it in the main Makefile of the kernel sources, then  
  254. (re)compile the kernel again. Make sure the files in kernel/chr_drv
  255. directory are recompiled.   
  256.  
  257.  
  258. QUESTION: (special FINNISH/US) I booteed up with the new image and
  259. everything work except that some keyboard keys produce wrong
  260. characters. Does anyone know what is happening?
  261.  
  262. ANSWER: Since 0.95a images are US product (and so are US-keyboard
  263. oriented), BUT linux sources are FINNISH product, and so the default
  264. keyboard is set to be FINNISH. The solution is in the previous Q/A.
  265.  
  266.  
  267. QUESTION: Does there exist shared libs ?
  268.  
  269. ANSWER: (H.J. Lu, hlu@eecs.wsu.edu, 09/01/92)
  270.  
  271. The shared library under Linux started at 0.12. Peter MacDonald
  272. collaborating with Linus made the first generation of shared library,
  273. which is the base of the current classic shared library.
  274.  
  275. The kernel support of shared library under Linux is system call
  276.  
  277. extern int uselib (const char *__filename);
  278.  
  279. which loads an executable image with fixed entry point into memory,
  280. just like the ordinary executables.
  281.  
  282. In crt0.s, a function which can find out if and which shared images
  283. are needed and loads them is invoked before `main ()' is called if
  284. necessary. David Engel and I developed a way to tell the loader which
  285. shared images have to be loaded, utilizing the similar technique used
  286. in global constructor in g++ 2.x with the help from GNU binary
  287. utilities.
  288.  
  289. In the classic Linux shared library, we build a big executable image 
  290. for several libraries and make sure no external variables outside of
  291. the participating libraries are referenced. Then we can get the
  292. absolute addresses of all the global variables defined in the
  293. libraries used to build that executable image. After that, we make a
  294. stub library for each participating library which just has the
  295. absolute addresses of all the global variable in it.
  296.  
  297. For each shared image, there must be one and only one file, usually
  298. called, __shared.o, which defines a global variable containing
  299. version, name and entry point of the shared image, and a dummy global
  300. data. Among those libraries used to build the shared image, there must
  301. be one library which will always be referenced whenever any other
  302. library is referenced. We put `__shared.o' into the stub library for
  303. that library and add a declaration for the dummy global data defined
  304. in `__shared.o' which will make sure `__shared.o' will always be linked
  305. in when any participating libraries are linked.
  306.  
  307. In gcc 2.2.2d, jump table, developed by David Engel, was introduced in 
  308. the shared library. At the beginning of each shared image, there is
  309. a table in which every library function has a fixed entry address and
  310. the instruction at that address is a jump which will lead to the
  311. real library function. So we can change the library function without
  312. changing the corresponding entry address of the jump table. For the
  313. global data we put them at the beginning of data section of the shared
  314. image. We have to separate them from text code and link them in fixed
  315. order. It is very hard to maintain the same addresses for the global
  316. data when library is changed. After the global data are set up properly
  317. and some spaces are left for possible future changes (that is a very
  318. tough procedure.), it isn't too difficult to maintain.
  319.  
  320. In the current implementation, only libc.a, libcurses.a, libdbm.a,
  321. libtermcap.a and libm.a are built with jump table. The global data in
  322. X11 libraries are too complicated to make jump table such that their
  323. addresses won't change when there is a change in X11 libraries. It's
  324. not apparent yet that the benefits gained from a jump table version of
  325. the X libraries would offset the effort required to set it up and
  326. maintain it unless we get some cooperation from X Consortium, which
  327. is very unlikely. But they are linked with jump table version of
  328. libc.a and libm.a. That means they don't have to be relinked when
  329. there is a modification in libc.a or libm.a.
  330.  
  331.  
  332. QUESTION: Does Linux work for SCSI drives?
  333.  
  334. ANSWER: Yes since v0.96. At headrest.colorado.edu in /pub/scsi, you
  335. will find the last SCSI alpha/beta version and also a special SCSI
  336. FAQ, read it, it  contains the latter information than the one provided
  337. in the SCSI section. You should, also, contact the linux-scsi list or
  338. directly drew@cs.colorado.edu  
  339.  
  340.  
  341. QUESTION: Linux is supposed to work with ESDI drive. However I have
  342. trouble with my Magtron MT-4115E (Joincom controler), any clue?
  343.  
  344. ANSWER: (Linus) Some harddisk don't like linux (even though they
  345. should). Maybe not a bug but a deficiency.
  346. (Mika) I had to remove the printk "unexpected hd interrupt" statement
  347. in hd.c because I was getting so many of those messages. Be warned
  348. that if there is any read error the system just hangs, even the
  349. ctrl-alt-del won't work. You should be able to use your ESDI drives if
  350. you could live with those nuisances.
  351.  
  352. QUESTION: How does one go about applying a patch to Linux ?
  353.  
  354. ANSWER: (Drew Eckhardt) In the unix world most of distribution are in
  355. source form. This includes the operating system. To apply a patch, you
  356. apply it with the 'patch' program to the affected sources. The patch
  357. program takes as input the differences between the old and the new
  358. version. After patching you need to recompile the sources.
  359.  
  360. Assume I want to apply a patch enclosed in the file XXX. First of all
  361. I will look at the top of XXX, where the file affected is identified.
  362. This may have aleading path attached to it. Either cd out to the
  363. "root" of the patch, ie if I see
  364. linux/kernel/blk_drv/blk.h
  365.  
  366. I would cd into /usr/src 
  367. (assuming it's the place where I can find linux/kernel...) 
  368. and then patch as follows
  369. patch -p0 < whatever_place/XXX
  370.  
  371. or, you can specify a number of path components to strip from the
  372. path. If I am in the blk_drv directory patching would be
  373. patch -p3 < whatever_place/XXX
  374.  
  375.  
  376. QUESTION: There are a lot of patches available (ps patch, NFS patches,
  377. CD-ROM patches ...) can I be fairly confident the subsequent patches will
  378. work?
  379.  
  380. ANSWER: This is not true yet for the current version; but it will be
  381. so I kept it :) 
  382. No you can't, patching is a real beta tester art :)).  People are not
  383. working on the same patched release, so you have to check if the
  384. patches you already applied works on the same kernel part, if not,
  385. /great/, just apply them. If yes, check if there is an order, patch
  386. creator knows that, and (should) try to warn patch user (in other
  387. words: beta tester) otherwise you should edit the patch files (and
  388. possibly make a brief note to others on this list/newsgroup or even a
  389. cdiff) before applying them, another solution is to keep cool and wait
  390. for the next version of Linux where, in general, the modifications
  391. have been done but this behavior is /not/ Linux helpful.
  392.  
  393.  
  394. QUESTION: I got the patches on some ftp sites, and applied them to the
  395. kernel and tried to compile. It didn't !!. Are the patches buggy?
  396.  
  397. ANSWER: Before remake, just do a make clean in the directories
  398. involved by the patches. This will force a rebuild of the .o and .a
  399. files. 
  400. If you have a RCS running on your source tree, did you checked a
  401. patched version of the files changed before /any/ CO either by you or
  402. make
  403.  
  404. Finally, make sure the patches succeded. Normally, failed patches on a
  405. file FILE will leave a FILE# file. Moreover you will get a "chunk
  406. failed" message. It is possible to capture the output while patching,
  407. with the following:
  408.  
  409.     patch -p0 < patchfile | 2>&1 patch.result | more
  410.  
  411.  
  412. QUESTION: What is VFS?
  413.  
  414. ANSWER: (Ted) Linux 0.96 already has Virtual FileSystem, which means
  415. that it acts as a filesystem switch. It makes it easy for someone to
  416. design another filesystem format and include it in the Linux kernel
  417. along with the standard minix filesystem format. So it /enables/
  418. someone to design a robust filesystem which would have some nice
  419. properties (no 14 chars file name limitation, nor 64Meg limit), and
  420. could be included in the kernel in such a way that both the Minix and
  421. the new one could be mounted at the same time. This solves the
  422. uncompability problem; since the root disk could still use the Minix
  423. filesystem, while the hardisk could be using the new one.
  424.  
  425.  
  426.  
  427. QUESTION: What's about Bus Mice ?
  428.  
  429. ANSWER: (Nathan I. Laredo) Since the Linux v0.96c-pl2 the kernel does
  430. support LOGITECH and BUS MICE 
  431. If you are unsure that you have a bus mouse or not, check to see if
  432. your mouse card has a selection for a sample rate switchable between
  433. 30Hz and 60Hz (or possibly 25/50Hz), if it does not, then it is NOT a
  434. true  bus mouse (InPort mice for example will not work with this
  435. driver). 
  436. To create a bus mouse device:
  437. mknod /dev/mouse c 10 0
  438.  
  439.  
  440. QUESTION: What's about TeX ?
  441.  
  442. ANSWER: The primary site for Linux TeX is 129.78.66.1, this is 
  443. P. Williams' site in Australia. The stuff at tsx-11 was posted by 
  444. T. Dunbar  who does support/maintain the dvilj stuff.
  445.  
  446.  
  447. QUESTION: What's about LILO ?
  448.  
  449. ANSWER: (Werner Almesberger)
  450. LILO  -  Generic Boot Loader for Linux ("LInux LOader") 
  451.  
  452. This is an ALPHA test release of a new boot loader. Be sure to have
  453. some means to boot your system from a different media if you install
  454. LILO on your hard disk.
  455.  
  456. Features
  457. --------
  458.  
  459. - does not depend on the file system. (Tested with Minix, EXT FS and MS-DOS
  460.   FS.)
  461. - can be used to boot from floppies and from hard disks.
  462. - can replace the master boot record.
  463. - can boot non-Linux systems (MS-DOS, DR DOS, OS/2, ...) and unstripped
  464.   kernels.
  465. - supports up to 16 different boot images that can be selected at boot
  466.   time. Root and swap disk/partition can be set independently for each
  467.   image.
  468. - boot sector, file map and boot images can be all on different disks or
  469.   partitions.
  470.  
  471.  
  472. Restrictions and known problems
  473. -------------------------------
  474.  
  475. - SCSI disks are not fully supported yet. (Still waiting for some kernel
  476.   changes.)
  477. - booting other operating systems doesn't seem to work everywhere. If
  478.   everything but booting a non-Linux OS from LILO works on your system,
  479.   you should boot LILO by BOOTACTV and select the alternate OS with the
  480.   latter as a temporary work-around.
  481. - booting non-Linux systems from the second hard disk ("D:") is not yet
  482.   supported.
  483.  
  484. Please send all bug reports to almesber@nessie.cs.id.ethz.ch
  485.  
  486.  
  487. QUESTION: What's about MGR ?
  488.  
  489. ANSWER: (General Information grabbed from various sources)
  490. There is a MGR channel available , contact the request adress with
  491. help in the body: linux-activists-request@niksula.hut.fi 
  492. The stuff can be found at banjo in pub/Linux/MGR
  493. In brief:
  494.  
  495. MGR provides:
  496.     - multiple overlapping windows
  497.     - multiple fonts
  498.     - text and graphics in each windows
  499.     - a simple popup menu package
  500.     - a client/server model 'a la' X
  501.     - independance from any peculiar networking technology
  502.  
  503. MGR consist of a server process and some clients. Each client has his
  504. own window, and can create subwindows. Clients communicate with the
  505. server via a bidirectionnal channel. A C library is provided.
  506.  
  507. When a new window starts, it is as a terminal emulator running the
  508. shell; for more information you can grab the mgr-man.out from
  509. bellcore.com 
  510.  
  511.  
  512. QUESTION: I have successfully compiled MGR, but when I try to run the
  513. program I get "can't find mouse" or "already in use", any clue?
  514.  
  515. ANSWER: try the following "mgr -m /dev/ttys1" if the mouse is on
  516. the serial 1. Another possibility is to link /dev/mouse with
  517. /dev/ttys1 (assuming your mouse is on serial 1). Or if it's a bus
  518. mouse, "mknod /dev/mouse c 10 0" once.
  519.  
  520. QUESTION: Any tips for MGR?
  521.  
  522. ANSWER: Well, I have tried it on my 386Sx Ega/Vga; the screen is Ok
  523. but the Logitech mouse I have is not well recognized.
  524.  
  525. BTW check the major/minor number for pty's; they should be character
  526. device with 4 as major and 128 and bigger as minor:
  527. ptyp0 c 4 128
  528. ptyp1 c 4 129
  529. ...
  530. ttyp0 c 4 192
  531. ttyp1 c 4 193
  532.  
  533. QUESTION: What's about X11 ?
  534.  
  535. ANSWER: See the section devoted to X11 in this FAQ.
  536.  
  537.  
  538. IX. GCC MISC INFORMATION
  539. ========================
  540.  
  541. The official release of GCC for Linux is 2.2.2d, information for the
  542. previous versions (1.37, 1.40) can be found in FAQ of July 92.
  543.  
  544. I think this section is needed, 'cause a) gcc is the compiler under
  545. Linux, and b) the gcc-2.x is still evolving, and many information change
  546. constantly. 
  547. To conclude this short introduction (in fact the conclusion will be
  548. longer than the introduction :), the most recent release of gcc-2.2.2d
  549. can be found at tsx-11 in /pub/linux/GCC, and also at
  550. fgb1.fgb.mw.tu-muenchen.de under /pub/linux/GCC, and one of the
  551. "specialist" is Hongjiu Lu (hlu@eecs.wsu.edu). There is a special 
  552. channel for GCC, feel free to contact the linux-activists list.
  553. The Information provided in this section which envolved GCC2.xx
  554. are extracted from the FAQ GCC, written by Hongjiu, provided
  555. with the current distribution of gcc /READ IT/
  556. Finally whenever you report a bug please give the version of gcc, the
  557. version of your kernel, otherwise NO ONE can help you.
  558.  
  559.  
  560. QUESTION: I don't know how to install gcc stuff, is there special
  561. places?
  562.  
  563. ANSWER: gcc-2.xx is splitted in 3 main files 2.xxdb.tar.Z,
  564. 2.xxlib.tar.Z and 2.xxmisc.tar.Z, some utilities (binutils.tar.Z) and
  565. shared libraries are also provided. To install them do the following:
  566.  
  567. First of all, backup the old compiler. YOU MUST BE SURE THERE IS NO
  568. OTHER C COMPILER INSTALLED ON YOUR SYSTEM. What is meant by compiler
  569. is all the stuff: binaries, header files, libraries and crt0.o. I
  570. assume that whateverplace contains the 2.xxfiles you have downloaded.
  571.  
  572. cd /usr
  573. tar xvpzf whateverplace/2.xxmisc.tar.Z
  574.  
  575. read the FAQ, and README in /usr/install/gcc2. 
  576.  
  577.  
  578. QUESTION: What are the contents of them?
  579.  
  580. ANSWER: 2.xxdb.tar.Z contains cpp, libg.a and libc_p.a. 2.xxlib.tar.Z
  581. contains cc1 and cc1plus. 2.xxmisc.tar.Z contains gcc 2.xx drivers,
  582. header files, libraries, manual pages and installation instructions.
  583. Another file, XXXXinc.tar.Z, where XXXX is the current version number
  584. of Linux kernel, has all the header files to replace the header files 
  585. from kernel. YOU MUST INSTALL IT. Please read README for details.
  586.  
  587. (gcc.2.2.2d 08/15/92)
  588. 1. 2.2.2ddb.tar.Z (libg.a, libc_p.a and jump stable stuffs)
  589.    You just have to install jump/lib*.so.* by hand.
  590. 3. 2.2.2dg1.tar.Z (libg.a compiled with -g1 to get a smaller libg.a)
  591. 4. 2.2.2dfix4.tar.Z (<time.h>, <limits.h>,  <unistd.h>, libc.a and
  592.    shared/*.a)
  593. 5. shlib-2.2.2d.tar.Z (build the stub libs for the shared libs.)
  594. 6. libc-2.2.2dfix4.tar.Z. It has the following files:
  595.  
  596.     ./posix/sysconf.c
  597.  
  598. You need to delete by hand libinet.a in
  599.     /usr/lib/gcc-lib/i386-linux/2.2.2d
  600.  
  601.  
  602.  
  603. QUESTION: I seem to be unable to compile anything with gcc. Why?
  604.  
  605. ANSWER: If you have only 2 MB RAM, gcc will die silently without
  606. compiling anything. You must have at least 4 MB to do compilations
  607.  
  608. BTW Since swapping is possible, I have heard that compilation works 
  609. with only 2Meg and a lot disk traffic :) Isn't it great?
  610.  
  611.  
  612. QUESTION: gcc complains about not finding crt0.o and the system
  613. include files What am I doing wrong ?
  614.  
  615. ANSWER: The include files normal place is in /usr/include. lib*.a and
  616. *.o should be in /usr/lib or /usr/local/lib
  617.  
  618.  
  619. QUESTION: I tried to port a /new/ version of gnu stuff. But in the
  620. linking phase, gcc complains about the missing libg.a. 
  621.  
  622.  
  623. ANSWER: Yes this is well known for compiler version earlier than
  624. 2.2.2, throw away the flag -g that's all, anyway libg.a is /only/ for
  625. debugging purpose. 
  626.  
  627.  
  628. QUESTION: How to compile programs which may be debugged with gdb?
  629.  
  630. ANSWER: There are different ways to handle this problem. If
  631. you have the gcc2.2.2 or later it's simple, use the -g flag. Otherwise
  632. there are different possibilities:
  633. 1) As there is no libg.a, you should throw away the -g flag in link
  634. phase, this means that the compilation must be done in two steps
  635. example: instead of "gcc -g monprog.c -o monprog", use the following
  636. "gcc -g -c monprog.c" and then "gcc -o monprog monprog.o"
  637. Alas this method is not that good if you are using Makefile.
  638. 2) The other way is to create an empty libg.a as follows (Peter
  639. Macdonald trick):
  640. - create libfake.c containing libgfake() {}
  641. - compile it with: gcc -c libfake.c
  642. - create the libg.a with: ar r libg.a libfake.o
  643. 2bis) The more tricky Humberto method:
  644. cd /usr/lib
  645. ranlib libg.a
  646.  
  647. then gcc -g monprog.c -o monprog will produce a debuggable monprog
  648.  
  649.  
  650. QUESTION: When compiling some code, cc1 complains about some insn
  651. code, what's that? 
  652.  
  653. ANSWER: An insn is an internal representation that gcc uses when
  654. compiling. The main part of gcc is to take ordinary c (or c++) code,
  655. and compile it, while ding optimizations in insn part, which is
  656. soft/hard independant. Then another part which is hard/Os dependant
  657. takes the insns and translate it in assembly language. The fix is only
  658. to turn off the optimization flag (-O). 
  659.  
  660.  
  661. QUESTION: While compiling some stuff, I'm getting the following 
  662. error message:
  663. Undefined symbol ___addsf3 referenced from text segment
  664. as well as ___mulsf3 and __cmpsf2. 
  665. These symbols are not in the program or in it's header files.
  666.  
  667. ANSWER: These are math helper functions, and you can usually compile
  668. these programs to use the kernel floating point routines by adding
  669. '-m80387' to the compiler switches. If the program does any wierd 
  670. fp math (exp(), sin()) it'll die when you run it though.
  671.  
  672.  
  673.  
  674. QUESTION What's about gcc2.x ?
  675.  
  676. ANSWER: It has been ported to linux, it is (pretty) stable and works. 
  677. The files are 2.xxlib.tar.Z and 2.xxmisc.tar.Z Uncompress and untar
  678. 2.xxmisc, read the FAQ enclosed and play with it.  You can find these
  679. files at tsx-11 in binaries/compilers/gcc-2.x. One of the most recent
  680. version is on tsx-11 and fgb1.    
  681. The shlib.tar.Z enables you to create shared libraries, read the
  682. README file included
  683. The 096inc.tar.Z contains the header files from the kernel
  684.  
  685.  
  686. QUESTION: I can't run g++ due to the lack of "expr"; where can I find
  687. it ?
  688.  
  689. ANSWER: In the shellutils-1.6.tar.Z (or whatever is the last release)
  690. on prep.ai.mit.edu 
  691.  
  692. QUESTION: I have grabbed the new gcc2.xx, but I can't use it whenever 
  693. I compile (even hello world program) I get "parse error before ('s";
  694. any clue ?
  695.  
  696. ANSWER: Yes, it's caused by bad compress/tar binaries, use the one 
  697. provided at tsx-11 in linux/binaries/usr.bin
  698.  
  699. QUESTION: Is there a bug in how g++ and gcc handle include files?
  700. 'cause I can't get them to find files in the g++-include directory.
  701.  
  702. ANSWER: Did you run "fixfiles"? The file permission in g++-include is
  703. 640 and should be 444.
  704.  
  705.  
  706. QUESTION: I've seen on my ftp-server that there are different
  707. ***fix*.tar.Z files in the GCC directory, do I need them? 
  708.  
  709. ANSWER: If you got a very early copy of gcc 2.2.2, please get
  710. 2.2.2fix1.tar.Z and 2.2.2fix2.tar.Z, and libc-linux.fix.tar.Z for the
  711. C lib sources, and new shlib-2.2.2.tar.Z if you want. If you got gcc
  712. 2.2.2 after you saw **fix*.tar.Z, you are fine. 
  713.  
  714. QUESTION: Is stdio ANSI compatible?
  715.  
  716. ANSWER: Yes, please test it.
  717.  
  718. QUESTION: Is g++ in 2.xx?
  719.  
  720. ANSWER: Yes.
  721.  
  722. QUESTION: How do I use gcc?
  723.  
  724. ANSWER: Read manual page, gcc.ps or gcc.man in /usr/install/gcc2.
  725.  
  726. QUESTION: What options can I use for gcc?
  727.  
  728. ANSWER: Read manual page, gcc.ps or gcc.man. Also -static tells gcc
  729. to use the static libraries, -nojump forces gcc to use the classic
  730. shared libraries. The default is the jump table version of shared
  731. libraries. The shared libraries for X are linked with the jump table
  732. version of shared C library.
  733.  
  734. QUESTION: Where is the source code of the new libc.a?
  735.  
  736. ANSWER: The same place you find this file. It is called 
  737. lib-src-yy.xx.TZ.
  738.  
  739. QUESTION: Why does g++ complain, even die?
  740.  
  741. ANSWER: You need "expr", which is in GNU shell utilities 1.6, echo (?)
  742. and sed.
  743.  
  744. QUESTION: How do I generate code for 486?
  745.  
  746. ANSWER: Add -m486 to CFLAGS.
  747.  
  748. QUESTION: I heard malloc (0) wouldn't work with Linux, what should I
  749. do?
  750.  
  751. ANSWER: include <stdlib.h> and don't define NO_FIX_MALLOC.
  752.  
  753. QUESTION: Why does gcc say "xxxxx..h not found"?
  754.  
  755. ANSWER: see QUESTION: What are the contents of them?
  756.  
  757. QUESTION: I really followed every step in the documentation, but when
  758. I do "make", why does it say "don't how to make xxxxxx"?
  759.  
  760. ANSWER: The dependency in Makefile is dated, you need to make a new
  761. one. Please get some guide on make and read Makefile. For the kernel
  762. sources, please do
  763.  
  764. cd src/linux
  765. make dep
  766.  
  767. QUESTION: How do I compile programs under Linux?
  768.  
  769. ANSWER: The Linux C library is trying to be ANSI/POSIX compliant. It
  770. is also very compatible with SYSV and BSD. The C library is loaded
  771. with SYSV and BSD functions. There are three exceptions:
  772.  
  773. 1. signal in Linux is POSIX.
  774. 2. tty in Linux is POSIX.
  775. 3. time functions are POSIX, plus a few BSD and SYSV extensions.
  776. 4. setjmp/longjmp functions are POSIX. But you can use -D__FAVOR_BSD
  777.    to make it BSD or use sigsigjmp/siglongjmp.
  778.  
  779. When you compile a program under Linux, your best bet is include all
  780. the appropriate header files and use -Wall. All the usable functions
  781. and global variables are declared in the corresponding header files.
  782. YOU SHOULD NOT DEFINE ANY functions or global variables OF THE LINUX C
  783. LIBRARY IN YOUR CODE IF YOU WANT TO USE THE SHARED LIBRARIES.
  784.  
  785. After saying all those, you now should know you can compile a program
  786. with -D_POSIX_SOURCE or -D_GNU_SOURCE (read <features.h> for details).
  787. With a few modifications you can even use -DSYSV, -DUSG or -DBSD. Some
  788. codes need to define -DSTDC_HEADERS for ANSI C compiler like gcc here.
  789.  
  790. To use malloc () and calloc () safely under Linux, please include
  791.  
  792. <stdlib.h> and don't define NO_FIX_MALLOC.
  793.  
  794. BTW, gcc -traditional should work with gcc 2.2.2d or above.
  795.  
  796. Please also read ChangeLog for the latest enhencement.
  797.  
  798. Please read the header files for details. Maybe you should get a book
  799. on POSIX. Any suggestion of the book list?
  800.  
  801. QUESTION: When compiling #$@!, I've got some problems with "SIGBUS"
  802. signal that doesn't exist. Any clue ?
  803.  
  804. ANSWER: (Louis J. LaBash, Jr.) SIGBUS is a common problem, its not
  805. needed, just comment it all out, something like:
  806.  
  807. #ifdef SIGBUS
  808. .. normal sigbus code ..
  809. #endif
  810.  
  811. QUESTION: How can I write codes suitable for building shared library ?
  812.  
  813. ANSWER: (H.J. Lu, hlu@eecs.wsu.edu, 09/01/92)
  814. There are some guidelines for writing codes suitable for building the
  815. shared library with jump table.
  816.  
  817. 1. Never, ever allow library users to access global data directly.
  818.    Always, always make them go through access functions.  That way,
  819.    you are free to change the internal implementation, but can
  820.    easily provide backward compatibility by simply replacing the
  821.    access functions.
  822.  
  823. 2. If you do have to define some global data for library users to
  824.    access, put them into a separate file. Never mix them with other
  825.    library code. Also make sure the relative locations of the global
  826.    data will not change very often. One solution is leave some spaces
  827.    for them to grow.
  828.  
  829. X. SCSI SPECIAL
  830. ===============
  831. *** This section is written by Drew Eckhardt, mail him for any
  832. *** information, questions related to this section.
  833. *** Last update November 1992.
  834.  
  835.  
  836. QUESTION: What SCSI hosts are supported?
  837.  
  838. ANSWER: The Adaptec 154x, Adaptec 174x Future Domain 16x0,  Seagate ST0x, 
  839. Ultrastor 14F, and Western Digital 7000FASST  are supported.  Various Adaptec 
  840. clones from Bustek and Future Domain are known to work, in both ISA and EISA 
  841. flavors.
  842.  
  843. The TMC 950, and the discrete 8xx implementations will be supported 
  844. in the new Seagate driver when debugging is finished.  If you want to 
  845. use an older kernel, add 0x200 to the status and data register addresses.
  846.  
  847. Not very many BIOS signatures are included for the Future domain boards, so 
  848. they may not auto-detect correctly.  
  849.  
  850. QUESTION: Which disks ?
  851.  
  852. ANSWER: Anything that works with your host adapter electronically, and
  853. is new enough to support a December 1985 draft of SCSI-I.  
  854.  
  855. Sysquest, and other removeable hard disks are supported.
  856.  
  857. Extended partitions also work, with 11 Extended partitions per disk 
  858. allowed in combination with the four real partitions and whole disk
  859. sub device.
  860.  
  861. Disks up to two terabytes in size will work, since the sd drier
  862. switches to 10 byte reads when necessary.
  863.  
  864. QUESTION: What about SCSI tapes ? 
  865.  
  866. ANSWER: Tapes are supported in the alpha SCSI drivers.
  867.  
  868. QUESTION: What about CD ROMS?
  869.  
  870. ANSWER: Stable support is in the kernel for SCSI CD-ROM drives, and the 
  871. ISO-9660 file system is in beta test.  Rockridge extensions are supported.
  872.  
  873. QUESTION: How do I get SCSI information?
  874.  
  875. ANSWER: Subscribe to the SCSI channel of the linux-activists mailing list.
  876. mail linux-activists@joker.cs.hut.fi 
  877. And put in the header.
  878.        X-MN-Admin: join SCSI
  879.  
  880. QUESTION :  I can't make a filesystem on /dev/hd*
  881.  
  882. ANSWER : /dev/hd* aren't your SCSI disks.  /dev/sd* are. 
  883. See below for approproate major / minor numbers if they 
  884. do not exist on your root diskette.
  885.  
  886. QUESTION: How do I partition the disk?
  887.  
  888. ANSWER: Use pfdisk or the DOS parititioning program of your choice
  889.  
  890. QUESTION: My partitioning program can't figure out the disk geoemetry
  891.  
  892. The problem with partitioning SCSI disks and Linux is that Linux talks
  893. directly to the SCSI interface.  Each disk is viewed as the SCSI host
  894. sees it : N blocks, numbered from 0 to N-1, all error free.  There is
  895. no portable way to get disk geometry.  
  896.  
  897. However, DOS doesn't like things like this, it demmands that BIOS
  898. present it with a normal Cylinder / Head / Sector coordinates.  So,
  899. BIOS does, and it comes up with some fabrication that fits what DOS
  900. wants to see.  You don't want to disagree with what BIOS thinks when
  901. you write the partition table. 
  902.  
  903. The newest SCSI code will return the mapped geometry for some host 
  904. adapter / disk combinations. Get the latest SCSI code from 
  905. tsx-11.mit.edu:/pub/linux/ALPHA/scsi
  906.  
  907. QUESTION: The stock {f,pf}disk programs don't work.
  908.  
  909. ANSWER: At least some older versions of these partitioning programs have 
  910. /dev/hd* hardcoded into them, and they don't see /dev/sd*.
  911.  
  912. If you want, YOU can change the /dev/hd* devices to be links to or
  913. other entries for the SCSI devices.  
  914.  
  915. Also, pfdisk should be callable with a device name.
  916.  
  917. Hopefully, some one will change the partitioning programs to respect
  918. the SCSI devices. 
  919.  
  920. QUESTION: Where is the latest version maintained?
  921.  
  922. ANSWER: tsx-11.mit.edu:/pub/linux/ALPHA/scsi
  923.  
  924. Join the list before you grab anything.
  925.  
  926. eric@tantalus.nrl.navy.mil (Eric Youngdale) added scatter/gather support 
  927. to the SCSI drivers, and changed around the internal structures to get 
  928. something that works as "version 2"
  929.  
  930. QUESTION: What are the major / minor numbers for SCSI drives?
  931.  
  932. ANSWER: Because of the large number of devices that can be hung off of 
  933. a SCSI bus (as many as 56 if you use SCSI fanouts or bridge boards), 
  934. and the possibility of 16 partitions on a SCSI disk, we'd run out of 
  935. minor numbers if they were statically allocated - so a dynamic 
  936. numbering scheme is used.
  937.  
  938. Block device major 8 is used for SCSI drives, 9 for SCSI tapes, and 
  939. 11 for CD-ROMs.  
  940.         
  941. Minors are assigned in increments of 16 to SCSI disks as they are
  942. found, scaning from host 0, ID 0 to host n, ID 7, excluding the host
  943. ID.  Most hosts use ID 7 for themselves.
  944.  
  945. A minor where minor mod 16 = 0 is the whole drive, where minor mod 16
  946. is between 1 and 4, that partition, extended partitions dynamically
  947. assigned from 5 to 15 inclusive.  Note that the gendisk.c module
  948. prints partition tables on initialization - you should be able to see
  949. them there.
  950.  
  951. Example : I have four SCSI disks, set up as follows 
  952.         Seagate ST02, ID=0
  953.         Seagate ST02, ID = 5
  954.         Ultrastor 14, ID = 0
  955.         Adaptec 1542, ID = 0
  956.  
  957. The first disk on the seagate at ID 0 will become minors 0-15
  958. inclusive, the second at ID5 16-31 inclusive, the disk on the
  959. Ultrastor 32-47, on the Adaptec 48-63.
  960.  
  961. QUESTION: How do I reduce kernel bloat and eliminate the drivers I
  962. don't want?
  963.  
  964. ANSWER: Simply #undef CONFIG_DISTRIBUTION in include/linux/config.h,
  965. and define the macros for the SCSI hosts you want enabled.
  966.  
  967. QUESTION: I get SCSI timeouts.
  968.  
  969. ANSWER: Make sure your board has interrupts enabled correctly.
  970.  
  971. QUESTION: The seagate driver doesn't work.
  972.  
  973. ANSWER: There are several possibilities
  974. 1) Is the board jumpered for IRQ5 ? 
  975.  
  976. The factory settings are
  977. for MSLOSS, and have interrupts disabled.  Interrupts are controlled
  978. by the W3 (ST01) or JP3 (ST02) jumper, which should have pins FG 
  979. shorted.  See your manual.
  980.  
  981. 2) Cached machines will not have problems IF the Seagate's address
  982. space (typically C8000 - CAFFFF) is not marked "non cacheable."
  983. This applies to the i486 internal cache as well as i386/i486 
  984. external caches.
  985.  
  986. This can be set in the XCMOS of most machines.  If you can't disable
  987. cache for the Seagate's area (16K in size, starting at the base
  988. address), then you must disable the cache entirely, otherwise
  989. it won't work.
  990.  
  991. 3) The new seagate drivers (not yet released) can operate in a mode where 
  992. the 0ws ISA bus line is used to synchronize the ISA and SCSI busses.  
  993. This makes things fast, since the alpha Seagate driver can dump SCSI data out 
  994. fast enough to swamp the bus.  However, this will only work if the 0ws 
  995. jumper is enabled.  If this isn't the case, the Seagate driver "should" detect 
  996. this as an over/under run condition, but it might not.  Either enable
  997. the 0ws jumper, or #undef FAST in seagate.h.
  998.  
  999. QUESTION: The Adaptec driver doesn't work.
  1000.  
  1001. ANSWER: The Adaptec BIOS does some initialization that affects 
  1002. the driver.  If the BIOS was disabled, it may fail on your system.
  1003.  
  1004. Older versions of the SCSI drivers ran the 174x in 1542 emulation
  1005. mode, where some of these cards have a bug that interferes with 
  1006. reads / writes > 512 bytes. 
  1007.  
  1008. The new SCSI drivers support the 174x in 'native' mode, so this isn't
  1009. a problem.
  1010.  
  1011. QUESTION: What about bugs?
  1012.  
  1013. ANSWER: It works on MY hardware.  It works on Tommy Thorn's Adaptec
  1014. system, Dave Gentzel's Ultrastor, Thomas Wuensche's WD7000, Rick
  1015. Faith's Future Domain, and quite a few other systems.
  1016.  
  1017. Bugs that are there will mostly be very hardware specific, and nasty
  1018. to track down.  SCSI should be basically error free - consequently,
  1019. the error code has not been heavily tested, and there are known bugs
  1020. in it. 
  1021.  
  1022. If you have found a bug, please mail it to the mailing list with
  1023. specifics of your hardware.  Other people may have the same problem, a
  1024. solution, etc.
  1025.  
  1026. If you provide a patch, in context diff form, the bug will be fixed 
  1027. Immediately.  If you can provide me with a procedure that reproduces
  1028. the bug on *MY* system, the bug will be fixed "soon."  Your chances 
  1029. of getting it fixed increase exponentially with the amount of 
  1030. information provided.  If I can't reproduce it, and your 
  1031. description gives me no idea as to where in the code to  look,
  1032. it won't get fixed by me.
  1033.  
  1034. QUESTION: What are the known bugs?
  1035.  
  1036. ANSWER : 
  1037.  
  1038. Many of the drivers cannot abort a command that is in progress - if 
  1039. something goes haywire, all drives off that controller will hang.
  1040.  
  1041. QUESTION: I get a message saying READ CAPACITY FAILED. What does this
  1042. mean? 
  1043.  
  1044. ANSWER: UPGRADE.
  1045.  
  1046. QUESTION: Why does the system "hang" when SCSI disk access occurs.
  1047.  
  1048. ANSWER: Older Linux distributions (pre .97)  used  earlier versions
  1049. of the SCSI drivers, where the drivers were not interrupt driven
  1050. (easier debugging, or so we thought).  Since the drivers did not return
  1051. from the device driver strategy routine, until the SCSI command
  1052. completed, no other tasks were scheduled, and ineteractive performance
  1053. was abysmall. 
  1054.  
  1055. UPGRADE.
  1056.  
  1057. QUESTION: Why can't I swap to a SCSI disk?, Why can't I mount a SCSI
  1058. disk as root? 
  1059.  
  1060. ANSWER: This was due do a race condition that has since been fixed.
  1061.  
  1062. UPGRADE.
  1063.  
  1064. QUESTION: What future developments are planned?  
  1065.  
  1066. ANSWER: The following changes will/have occurred : 
  1067.  
  1068.         - have occurred : 
  1069.  
  1070.         - support for scatter / gather is there.  This 
  1071.           means that all read (and readaheads) will be 
  1072.           handled via one command.  
  1073.  
  1074.         - Significant changes have been made to the 
  1075.               Seagate driver.  Among other things, it supports the
  1076.           0ws line, which means we can dump data fast enough
  1077.           to flood the bus.  
  1078.  
  1079.         - Multiple outstanding commands per LUN are supported.  
  1080.           This should result in vastly improved performance
  1081.           on multi-device systems.
  1082.     
  1083.         - SCSI tapes are supported.
  1084.  
  1085.         - Support for LUN !=0 is there.
  1086.     
  1087.     - Planned
  1088.         - SCSI commands are issued as linked commands
  1089.           wherever possible, eliminating the arbitration / 
  1090.           selection / message out phases needed to start 
  1091.           a command "from scratch".
  1092.  
  1093.         - I have the mode page specs, and am looking at 
  1094.           doing "appropriate things" w.r.t. cache enable,
  1095.           buffer control, etc.  It seems that some drives
  1096.           power up, and keep the buffer off until told otherwise
  1097.           in software.
  1098.     
  1099.         
  1100. QUESTION: What drivers does the new code support.
  1101.  
  1102. ANSWER: ALL of the existing drivers work fine.  However, only an Adaptec 
  1103. scatter/gather driver is included in the alpha package.  The seagate 
  1104. scatter/gather driver is fast but not yet stable and still kernel 
  1105. panics.
  1106.  
  1107. QUESTION: WHEN?
  1108.  
  1109. ANSWER: Again, thanks to Eric's code contributions, it's available in 
  1110. alpha test now.  
  1111.  
  1112.  
  1113.        ===================8<==========>8================-- 
  1114. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1115. #    LaBRI              |                        #
  1116. #  351 cours de la Liberation    |  e-mail:  corsini@labri.greco-prog.fr    #
  1117. #  33405 Talence Cedex         |                        #
  1118. #                   |                        #
  1119. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1120. -- 
  1121.   There will be some sig, once our local net will be reliable.
  1122.         Right now I rather stay anonymous.
  1123.